
from django.template.context import RequestContext
from django.shortcuts import render_to_response, redirect
from django.template import RequestContext
from django.http import Http404
from usuarios.models import Usuario
from django.contrib.auth.models import User
from universidades.models import Universidad, Region
from models import InformeInstitucional
from forms import InformeInstitucionalForm
from django.db.models.base import Model
from django.template.defaultfilters import time
import datetime
from django.contrib.auth.models import User
from universidades.views import sidebar


def formulario(request, pk_informe = 0):
    url = request.get_full_path()
    is_adm_institucional = request.user.groups.filter(
        name='Adm. Institucional').exists()

    if not is_adm_institucional:
        return redirect('/plataforma')

    """info marca si se despliega el formulario nuevo o un mensaje de 
    guardado en caso de aplicar el submit"""
    
    info = 'Nuevo'
    formulario_nro = 0
    if request.method == 'POST':
        try:     
            form = InformeInstitucional.objects.get(id = request.POST['id_formulario'])
            form.informe = request.POST['informe']
            form.fecha = datetime.datetime.strptime(request.POST['fecha'], '%d/%m/%Y').strftime('%Y-%m-%d')
            form.archivo = request.FILES['archivo']
            form.save()
            info = 'Editado'
        except InformeInstitucional.DoesNotExist:
            form = InformeInstitucionalForm(request.POST, request.FILES)
            if form.is_valid():
                form.save(request.user)
                info = 'Guardado'
        except Exception, e:
            raise e
            
        
    elif pk_informe != 0:
        informe = InformeInstitucional.objects.get(id = pk_informe)
        form = InformeInstitucionalForm(instance=informe)
        formulario_nro = pk_informe
    else:
        form = InformeInstitucionalForm()
        formulario_nro = 0

    menu= sidebar(request)
    context = {
        'url': url,
        'is_adm_institucional': is_adm_institucional, 
        'form': form,
        'info_enviado': info,
        'formulario_nro': formulario_nro,
        'menu' : menu,
    }

    return render_to_response('inf_institucional.html', 
                              context,
                              context_instance=RequestContext(request)
                              )


def informes(request, pk_informe):
    
    is_adm_institucional = request.user.groups.filter(
        name='Adm. Institucional').exists()

    try:
        informe = InformeInstitucional.objects.get(pk=pk_informe)
        universidad = Universidad.objects.get(pk=informe.universidad_id)
        usuario_responsable = User.objects.get(pk=universidad.administrador_id)
        bandera_edicion = 0
        if request.user.id == universidad.administrador_id:
            bandera_edicion = 1
            
    except InformeInstitucional.DoesNotExist:
        raise Http404

    menu= sidebar(request)
    context = {
        'is_adm_institucional': is_adm_institucional, 
        'universidad': universidad,
        'informe': informe,
        'usuario_responsable': usuario_responsable,
        'bandera_edicion':bandera_edicion,
        'menu' : menu,
    }

    return render_to_response('ver_inf_institucional.html', 
                              context,
                              context_instance=RequestContext(request)
                              )
